Skip to content

Add Customer Data Service documentation#6145

Merged
KD23243 merged 2 commits into
wso2:masterfrom
KD23243:addCustomerDataDocs
Jun 4, 2026
Merged

Add Customer Data Service documentation#6145
KD23243 merged 2 commits into
wso2:masterfrom
KD23243:addCustomerDataDocs

Conversation

@KD23243
Copy link
Copy Markdown
Contributor

@KD23243 KD23243 commented May 18, 2026

Purpose

Adds documentation for the Customer Data Service (CDS) feature in Asgardeo, including conceptual overviews and how-to guides.

Related Issue

N/A

Implementation

  • Added nav entries and feature flag for customer_data_service in mkdocs.yml and features.json
  • Added a Preview nav chip for the Customer Data section
  • Created documentation pages under en/asgardeo/docs/guides/customer-data/ and shared includes under en/includes/guides/customer-data/:
    • Index / overview page
    • Enable Customer Data Service guide
    • Concepts: Profiles, Profile Attributes, Unification Rules
    • Manage guides: Manage Profile Attributes, Manage Unification Rules
  • Added supporting images under en/asgardeo/docs/assets/img/guides/customer-data/

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 18, 2026

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yml

Review profile: CHILL

Plan: Pro

Run ID: db61732a-dfde-48ff-a4ad-41d2385e20e5

📥 Commits

Reviewing files that changed from the base of the PR and between 44778e5 and 7567648.

⛔ Files ignored due to path filters (7)
  • en/asgardeo/docs/assets/img/guides/customer-data/feature-preview-cds-on.png is excluded by !**/*.png
  • en/asgardeo/docs/assets/img/guides/customer-data/profile-attribute-view.png is excluded by !**/*.png
  • en/asgardeo/docs/assets/img/guides/customer-data/profile-list.png is excluded by !**/*.png
  • en/asgardeo/docs/assets/img/guides/customer-data/profile-structure.png is excluded by !**/*.png
  • en/asgardeo/docs/assets/img/guides/customer-data/scopes.gif is excluded by !**/*.gif
  • en/asgardeo/docs/assets/img/guides/customer-data/unification-rules-list.png is excluded by !**/*.png
  • en/asgardeo/docs/assets/img/guides/customer-data/unification-rules.png is excluded by !**/*.png
📒 Files selected for processing (15)
  • en/asgardeo/docs/guides/customer-data/concepts/profile-attributes.md
  • en/asgardeo/docs/guides/customer-data/concepts/profiles.md
  • en/asgardeo/docs/guides/customer-data/concepts/unification-rules.md
  • en/asgardeo/docs/guides/customer-data/enable-customer-data-service.md
  • en/asgardeo/docs/guides/customer-data/guides/manage-profile-attributes.md
  • en/asgardeo/docs/guides/customer-data/guides/manage-unification-rules.md
  • en/asgardeo/docs/guides/customer-data/index.md
  • en/asgardeo/features.json
  • en/asgardeo/mkdocs.yml
  • en/includes/guides/customer-data/concepts/profiles.md
  • en/includes/guides/customer-data/concepts/unification-rules.md
  • en/includes/guides/customer-data/enable-customer-data-service.md
  • en/includes/guides/customer-data/guides/manage-profile-attributes.md
  • en/includes/guides/customer-data/guides/manage-unification-rules.md
  • en/includes/guides/customer-data/index.md
✅ Files skipped from review due to trivial changes (6)
  • en/asgardeo/docs/guides/customer-data/index.md
  • en/asgardeo/features.json
  • en/asgardeo/docs/guides/customer-data/guides/manage-unification-rules.md
  • en/asgardeo/docs/guides/customer-data/concepts/unification-rules.md
  • en/includes/guides/customer-data/guides/manage-profile-attributes.md
  • en/asgardeo/docs/guides/customer-data/concepts/profiles.md
🚧 Files skipped from review as they are similar to previous changes (6)
  • en/asgardeo/docs/guides/customer-data/guides/manage-profile-attributes.md
  • en/includes/guides/customer-data/guides/manage-unification-rules.md
  • en/includes/guides/customer-data/concepts/unification-rules.md
  • en/asgardeo/docs/guides/customer-data/enable-customer-data-service.md
  • en/asgardeo/docs/guides/customer-data/concepts/profile-attributes.md
  • en/asgardeo/mkdocs.yml

📝 Walkthrough

Walkthrough

Adds Customer Data Service documentation: shared include files, Jekyll wrapper pages, a detailed profile-attributes reference, and site configuration (feature toggle and navigation) to expose the new guides.

Changes

Customer Data Service Documentation

Layer / File(s) Summary
Shared documentation content includes
en/includes/guides/customer-data/index.md, en/includes/guides/customer-data/enable-customer-data-service.md, en/includes/guides/customer-data/concepts/profiles.md, en/includes/guides/customer-data/concepts/unification-rules.md, en/includes/guides/customer-data/guides/manage-profile-attributes.md, en/includes/guides/customer-data/guides/manage-unification-rules.md
Establishes reusable Markdown include files documenting Customer Data index, enablement (Feature Preview), profile concepts (temporary vs permanent), unification rule structure/evaluation, and console management workflows. All includes are conditionally rendered for Asgardeo.
Public documentation pages and profile attributes reference
en/asgardeo/docs/guides/customer-data/index.md, en/asgardeo/docs/guides/customer-data/enable-customer-data-service.md, en/asgardeo/docs/guides/customer-data/concepts/profiles.md, en/asgardeo/docs/guides/customer-data/concepts/unification-rules.md, en/asgardeo/docs/guides/customer-data/guides/manage-profile-attributes.md, en/asgardeo/docs/guides/customer-data/guides/manage-unification-rules.md, en/asgardeo/docs/guides/customer-data/concepts/profile-attributes.md
Public pages now render shared content via Jekyll includes. The native profile-attributes.md documents attribute scopes (identity_attributes, traits, application_data), schema fields (required/optional, sub_attributes), supported value types (including complex), mutability options, merge strategies (overwrite, combine), built-in core attributes, and claim-dialect sync behavior.
Site navigation and feature configuration
en/asgardeo/features.json, en/asgardeo/mkdocs.yml
Adds customer_data_service feature toggle (enabled with linked pages), a "Customer Data" preview nav chip in theme extras, and a new "Customer Data" subsection under Guides linking to index, enablement, concepts, and management pages.

Suggested reviewers

  • himeshsiriwardana
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The PR title clearly and concisely summarizes the main change: adding documentation for the Customer Data Service feature.
Description check ✅ Passed The PR description is directly related to the changeset, providing clear purpose, implementation details, and file organization for the Customer Data Service documentation additions.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Warning

Tools execution failed with the following error:

Failed to run tools: 13 INTERNAL: Received RST_STREAM with code 2 (Internal server error)


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@KD23243 KD23243 marked this pull request as ready for review May 19, 2026 02:30
@coderabbitai coderabbitai Bot requested a review from himeshsiriwardana May 19, 2026 02:32
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 5

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@en/includes/guides/customer-data/concepts/profile-attributes.md`:
- Line 95: The sentence describing `identity_attributes` is a run-on (comma
splice); update the sentence that mentions `identity_attributes` and {{
product_name }} so the two independent clauses are separated properly—either
split into two sentences (e.g., end the first clause after "mirror the claim
dialects in {{ product_name }}." and start a new sentence "When a claim is
added, updated, or deleted, the service automatically reconciles its local
attribute set so the two stay aligned, no manual action is needed.") or join
them with a semicolon and adjust capitalization accordingly; ensure
`identity_attributes` remains quoted and the meaning is unchanged.

In `@en/includes/guides/customer-data/concepts/profiles.md`:
- Line 34: Update the table cell for `profile_id` to hyphenate the compound
modifier: change "System generated UUID. Immutable." to "System-generated UUID.
Immutable." so the modifier "System-generated" correctly applies to "UUID"
(locate the table row containing `profile_id`).
- Line 5: Change the phrase "per application data" to the hyphenated compound
modifier "per-application data" in the profiles description sentence in
profiles.md (the line containing "A **profile** is the central entity... per
application data unified across all interactions."). Ensure the updated sentence
reads "...behavioural traits, and per-application data unified across all
interactions." to follow compound modifier grammar rules.

In `@en/includes/guides/customer-data/concepts/unification-rules.md`:
- Line 28: Change the phrase "system level `userId` match" to use a hyphenated
compound modifier: replace "system level `userId` match" with "system-level
`userId` match" in the sentence that reads "Rules are evaluated **after** the
system level `userId` match. If two profiles..." so the doc uses the correct
compound adjective form.

In `@en/includes/guides/customer-data/index.md`:
- Line 5: Split the single 44-word sentence into two shorter sentences under 30
words each for readability: keep the subject and action in the first sentence
(e.g., "The Customer Data Service (CDS) collects and unifies data about your end
users across every interaction with your applications.") and move the outcome
into the second sentence (e.g., "It gives each user a single profile that
represents who they are and what they have done across your applications.");
update the sentence in the document content matching the original sentence text
to these two sentences.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yml

Review profile: CHILL

Plan: Pro

Run ID: 501e9377-e7f5-4dc1-8aff-0a3fe8cc1cd6

📥 Commits

Reviewing files that changed from the base of the PR and between a542abc and c42772d.

⛔ Files ignored due to path filters (7)
  • en/asgardeo/docs/assets/img/guides/customer-data/feature-preview-cds-on.png is excluded by !**/*.png
  • en/asgardeo/docs/assets/img/guides/customer-data/profile-attribute-view.png is excluded by !**/*.png
  • en/asgardeo/docs/assets/img/guides/customer-data/profile-list.png is excluded by !**/*.png
  • en/asgardeo/docs/assets/img/guides/customer-data/profile-structure.png is excluded by !**/*.png
  • en/asgardeo/docs/assets/img/guides/customer-data/scopes.gif is excluded by !**/*.gif
  • en/asgardeo/docs/assets/img/guides/customer-data/unification-rules-list.png is excluded by !**/*.png
  • en/asgardeo/docs/assets/img/guides/customer-data/unification-rules.png is excluded by !**/*.png
📒 Files selected for processing (17)
  • .github/workflows/preview-docs.yml
  • en/asgardeo/docs/guides/customer-data/concepts/profile-attributes.md
  • en/asgardeo/docs/guides/customer-data/concepts/profiles.md
  • en/asgardeo/docs/guides/customer-data/concepts/unification-rules.md
  • en/asgardeo/docs/guides/customer-data/enable-customer-data-service.md
  • en/asgardeo/docs/guides/customer-data/guides/manage-profile-attributes.md
  • en/asgardeo/docs/guides/customer-data/guides/manage-unification-rules.md
  • en/asgardeo/docs/guides/customer-data/index.md
  • en/asgardeo/features.json
  • en/asgardeo/mkdocs.yml
  • en/includes/guides/customer-data/concepts/profile-attributes.md
  • en/includes/guides/customer-data/concepts/profiles.md
  • en/includes/guides/customer-data/concepts/unification-rules.md
  • en/includes/guides/customer-data/enable-customer-data-service.md
  • en/includes/guides/customer-data/guides/manage-profile-attributes.md
  • en/includes/guides/customer-data/guides/manage-unification-rules.md
  • en/includes/guides/customer-data/index.md


## Staying in sync with {{ product_name }}

`identity_attributes` mirror the claim dialects in {{ product_name }}. When a claim is added, updated, or deleted, the service automatically reconciles its local attribute set so the two stay aligned, no manual action is needed.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Fix run-on sentence.

This sentence contains a comma splice. Use a period or semicolon to separate the two independent clauses.

Suggested fix
-`identity_attributes` mirror the claim dialects in {{ product_name }}. When a claim is added, updated, or deleted, the service automatically reconciles its local attribute set so the two stay aligned, no manual action is needed.
+`identity_attributes` mirror the claim dialects in {{ product_name }}. When a claim is added, updated, or deleted, the service automatically reconciles its local attribute set so the two stay aligned. No manual action is needed.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
`identity_attributes` mirror the claim dialects in {{ product_name }}. When a claim is added, updated, or deleted, the service automatically reconciles its local attribute set so the two stay aligned, no manual action is needed.
`identity_attributes` mirror the claim dialects in {{ product_name }}. When a claim is added, updated, or deleted, the service automatically reconciles its local attribute set so the two stay aligned. No manual action is needed.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@en/includes/guides/customer-data/concepts/profile-attributes.md` at line 95,
The sentence describing `identity_attributes` is a run-on (comma splice); update
the sentence that mentions `identity_attributes` and {{ product_name }} so the
two independent clauses are separated properly—either split into two sentences
(e.g., end the first clause after "mirror the claim dialects in {{ product_name
}}." and start a new sentence "When a claim is added, updated, or deleted, the
service automatically reconciles its local attribute set so the two stay
aligned, no manual action is needed.") or join them with a semicolon and adjust
capitalization accordingly; ensure `identity_attributes` remains quoted and the
meaning is unchanged.


# Profiles

A **profile** is the central entity in the Customer Data Service. It represents a single person's collected data, their identity attributes, behavioural traits, and per application data unified across all interactions.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Hyphenate compound modifier.

"per application data" should be hyphenated as "per-application data" when used as a compound modifier before a noun. As per coding guidelines, technical writing should follow standard grammar conventions.

Suggested fix
-A **profile** is the central entity in the Customer Data Service. It represents a single person's collected data, their identity attributes, behavioural traits, and per application data unified across all interactions.
+A **profile** is the central entity in the Customer Data Service. It represents a single person's collected data, their identity attributes, behavioural traits, and per-application data unified across all interactions.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
A **profile** is the central entity in the Customer Data Service. It represents a single person's collected data, their identity attributes, behavioural traits, and per application data unified across all interactions.
A **profile** is the central entity in the Customer Data Service. It represents a single person's collected data, their identity attributes, behavioural traits, and per-application data unified across all interactions.
🧰 Tools
🪛 LanguageTool

[grammar] ~5-~5: Use a hyphen to join words.
Context: ... attributes, behavioural traits, and per application data unified across all inte...

(QB_NEW_EN_HYPHEN)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@en/includes/guides/customer-data/concepts/profiles.md` at line 5, Change the
phrase "per application data" to the hyphenated compound modifier
"per-application data" in the profiles description sentence in profiles.md (the
line containing "A **profile** is the central entity... per application data
unified across all interactions."). Ensure the updated sentence reads
"...behavioural traits, and per-application data unified across all
interactions." to follow compound modifier grammar rules.


| Field | Description |
|---|---|
| `profile_id` | System generated UUID. Immutable. |
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Hyphenate compound modifier.

"System generated" should be hyphenated as "System-generated" when used as a compound modifier.

Suggested fix
-| `profile_id` | System generated UUID. Immutable. |
+| `profile_id` | System-generated UUID. Immutable. |
🧰 Tools
🪛 LanguageTool

[grammar] ~34-~34: Use a hyphen to join words.
Context: ...tion | |---|---| | profile_id | System generated UUID. Immutable. | | user_id...

(QB_NEW_EN_HYPHEN)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@en/includes/guides/customer-data/concepts/profiles.md` at line 34, Update the
table cell for `profile_id` to hyphenate the compound modifier: change "System
generated UUID. Immutable." to "System-generated UUID. Immutable." so the
modifier "System-generated" correctly applies to "UUID" (locate the table row
containing `profile_id`).

2. For each rule, checks whether any existing master profile has the same value for `property_name` as the incoming profile.
3. On the first match, merges the two profiles and stops, only one rule fires per unification run.

Rules are evaluated **after** the system level `userId` match. If two profiles share the same `userId`, they are always merged regardless of any rules.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Hyphenate compound modifier.

"system level" should be hyphenated as "system-level" when used as a compound modifier.

Suggested fix
-Rules are evaluated **after** the system level `userId` match. If two profiles share the same `userId`, they are always merged regardless of any rules.
+Rules are evaluated **after** the system-level `userId` match. If two profiles share the same `userId`, they are always merged regardless of any rules.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
Rules are evaluated **after** the system level `userId` match. If two profiles share the same `userId`, they are always merged regardless of any rules.
Rules are evaluated **after** the system-level `userId` match. If two profiles share the same `userId`, they are always merged regardless of any rules.
🧰 Tools
🪛 LanguageTool

[grammar] ~28-~28: Use a hyphen to join words.
Context: ...Rules are evaluated after the system level userId match. If two profiles sh...

(QB_NEW_EN_HYPHEN)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@en/includes/guides/customer-data/concepts/unification-rules.md` at line 28,
Change the phrase "system level `userId` match" to use a hyphenated compound
modifier: replace "system level `userId` match" with "system-level `userId`
match" in the sentence that reads "Rules are evaluated **after** the system
level `userId` match. If two profiles..." so the doc uses the correct compound
adjective form.


# Customer Data

The Customer Data Service (CDS) collects and unifies data about your end users across every interaction with your applications, and gives each user a single profile that represents who they are and what they have done across your applications.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Split the long sentence for readability.

This sentence is 44 words long. Per coding guidelines, sentences should be kept under 30 words for clarity.

Suggested revision
-The Customer Data Service (CDS) collects and unifies data about your end users across every interaction with your applications, and gives each user a single profile that represents who they are and what they have done across your applications.
+The Customer Data Service (CDS) collects and unifies data about your end users across every interaction with your applications. It gives each user a single profile that represents who they are and what they have done.
🧰 Tools
🪛 GitHub Check: Vale style check

[warning] 5-5:
[vale] reported by reviewdog 🐶
[WSO2-IAM.SentenceLength] Try to keep sentences short (< 30 words).

Raw Output:
{"message": "[WSO2-IAM.SentenceLength] Try to keep sentences short (\u003c 30 words).", "location": {"path": "en/includes/guides/customer-data/index.md", "range": {"start": {"line": 5, "column": 1}}}, "severity": "INFO"}

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@en/includes/guides/customer-data/index.md` at line 5, Split the single
44-word sentence into two shorter sentences under 30 words each for readability:
keep the subject and action in the first sentence (e.g., "The Customer Data
Service (CDS) collects and unifies data about your end users across every
interaction with your applications.") and move the outcome into the second
sentence (e.g., "It gives each user a single profile that represents who they
are and what they have done across your applications."); update the sentence in
the document content matching the original sentence text to these two sentences.

@github-actions
Copy link
Copy Markdown

Docs preview: https://marc-shop-letter-traditional.trycloudflare.com

Product: asgardeo · Ref: addCustomerDataDocs · Live for 120 min.

Triggered by @VivekVinushanth via the Preview Docs workflow.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (4)
en/asgardeo/docs/apis/restapis/flow-extension-management.yaml (4)

679-681: ⚡ Quick win

Remove unused security scheme.

The BasicAuth security scheme is defined but never referenced in any endpoint. All operations use OAuth2 (defined via global security). Removing unused security schemes keeps the specification clean and focused.

🧹 Proposed cleanup
   securitySchemes:
-    BasicAuth:
-      type: http
-      scheme: basic
     OAuth2:
       type: oauth2
       flows:
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@en/asgardeo/docs/apis/restapis/flow-extension-management.yaml` around lines
679 - 681, Remove the unused BasicAuth security scheme from
components.securitySchemes: delete the BasicAuth block (the type: http, scheme:
basic definition) so only OAuth2 remains, and scan for any references to
BasicAuth in the document (security, securitySchemes usage) to ensure none
remain; if any references exist, replace them with the global OAuth2 security or
remove the per-operation security overrides so the global OAuth2 applies.

131-143: ⚡ Quick win

Consider including the links field in at least one example.

The FlowExtensionBasicResponse schema includes an optional links array (lines 487-490), but the list response example omits it. Including it in at least one example entry would improve documentation completeness and help API consumers understand the full response structure.

📝 Example with links field
                 - id: 02d2636d-6334-4df6-b070-357f7c7922d4
                   name: Risk Assessment Extension
                   description: Evaluates user risk score during authentication by invoking an external fraud detection service.
                   version: v1
                   createdAt: '2026-05-20T08:27:04.400Z'
                   updatedAt: '2026-05-20T08:27:04.400Z'
+                  links:
+                    - href: /t/{organization-name}/api/server/v1/flow/extension/02d2636d-6334-4df6-b070-357f7c7922d4
+                      method: GET
+                      rel: self
                 - id: 09f72f97-53b8-47b5-b3b0-1020298db9cb
                   name: User Profile Enrichment
                   description: Fetches and syncs additional user attributes from an external directory during the registration flow.
                   version: v1
                   createdAt: '2026-05-22T10:15:30.120Z'
                   updatedAt: '2026-05-23T14:42:11.308Z'
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@en/asgardeo/docs/apis/restapis/flow-extension-management.yaml` around lines
131 - 143, The example list for FlowExtensionBasicResponse is missing the
optional links array; update one of the example entries (the example objects
under the examples block) to include a links field that matches the
FlowExtensionBasicResponse schema (e.g., an array of link objects with
rel/href/other required properties) so consumers can see the full response
shape; locate the example entries shown and add a links property to at least one
entry (referencing FlowExtensionBasicResponse) with a representative link
object.

593-663: 💤 Low value

Unused schemas detected.

The FlowExtensionContextResponse and FlowExtensionContextNode schemas are defined but not referenced by any endpoint in this specification. If these are intended for future endpoints, consider adding a comment indicating this. Otherwise, consider removing them to keep the spec focused.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@en/asgardeo/docs/apis/restapis/flow-extension-management.yaml` around lines
593 - 663, The spec defines unused schemas FlowExtensionContextResponse and
FlowExtensionContextNode that are not referenced by any path; either remove them
or mark them as intentionally unused by adding a clear comment/annotation and/or
a reference in the appropriate response/request schema for the endpoint that
will consume them. Locate the FlowExtensionContextResponse and
FlowExtensionContextNode schema objects and either (A) delete both definitions
if they are not needed, or (B) add a note in their description (or a vendor
extension like x-intent: "reserved-for-future-use") and wire
FlowExtensionContextResponse into the intended endpoint response (or into a
shared components reference) so the schemas are actually referenced by the spec.

665-676: 💤 Low value

Consider using specific error codes in examples.

All error response examples use the placeholder code FM-00000. While this is acceptable for initial documentation, using specific error codes in examples (e.g., FM-60001 for invalid request body, FM-60404 for extension not found) would provide more value to API consumers.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@en/asgardeo/docs/apis/restapis/flow-extension-management.yaml` around lines
665 - 676, The Error object examples currently use a generic placeholder code
"FM-00000"; update the example values in the Error schema (the "Error" object
with properties code, message, description) to use more specific, meaningful
example error codes (e.g., FM-60001 for invalid request body, FM-60404 for
extension not found) and adjust the corresponding example messages/descriptions
to match each specific code so API consumers see realistic error cases.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In `@en/asgardeo/docs/apis/restapis/flow-extension-management.yaml`:
- Around line 679-681: Remove the unused BasicAuth security scheme from
components.securitySchemes: delete the BasicAuth block (the type: http, scheme:
basic definition) so only OAuth2 remains, and scan for any references to
BasicAuth in the document (security, securitySchemes usage) to ensure none
remain; if any references exist, replace them with the global OAuth2 security or
remove the per-operation security overrides so the global OAuth2 applies.
- Around line 131-143: The example list for FlowExtensionBasicResponse is
missing the optional links array; update one of the example entries (the example
objects under the examples block) to include a links field that matches the
FlowExtensionBasicResponse schema (e.g., an array of link objects with
rel/href/other required properties) so consumers can see the full response
shape; locate the example entries shown and add a links property to at least one
entry (referencing FlowExtensionBasicResponse) with a representative link
object.
- Around line 593-663: The spec defines unused schemas
FlowExtensionContextResponse and FlowExtensionContextNode that are not
referenced by any path; either remove them or mark them as intentionally unused
by adding a clear comment/annotation and/or a reference in the appropriate
response/request schema for the endpoint that will consume them. Locate the
FlowExtensionContextResponse and FlowExtensionContextNode schema objects and
either (A) delete both definitions if they are not needed, or (B) add a note in
their description (or a vendor extension like x-intent:
"reserved-for-future-use") and wire FlowExtensionContextResponse into the
intended endpoint response (or into a shared components reference) so the
schemas are actually referenced by the spec.
- Around line 665-676: The Error object examples currently use a generic
placeholder code "FM-00000"; update the example values in the Error schema (the
"Error" object with properties code, message, description) to use more specific,
meaningful example error codes (e.g., FM-60001 for invalid request body,
FM-60404 for extension not found) and adjust the corresponding example
messages/descriptions to match each specific code so API consumers see realistic
error cases.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yml

Review profile: CHILL

Plan: Pro

Run ID: 635c5fda-e307-4dc3-ad1f-6af848839074

📥 Commits

Reviewing files that changed from the base of the PR and between c42772d and 9564d0d.

📒 Files selected for processing (3)
  • en/asgardeo/docs/apis/flow-extension-management-rest-api.md
  • en/asgardeo/docs/apis/restapis/flow-extension-management.yaml
  • en/asgardeo/mkdocs.yml
✅ Files skipped from review due to trivial changes (2)
  • en/asgardeo/docs/apis/flow-extension-management-rest-api.md
  • en/asgardeo/mkdocs.yml

Comment thread en/asgardeo/docs/apis/restapis/flow-extension-management.yaml Outdated
Comment thread en/asgardeo/docs/apis/flow-extension-management-rest-api.md Outdated
Comment thread en/includes/guides/customer-data/concepts/profile-attributes.md Outdated
@KD23243 KD23243 force-pushed the addCustomerDataDocs branch 2 times, most recently from a1a6027 to 44778e5 Compare May 29, 2026 06:48
@KD23243 KD23243 force-pushed the addCustomerDataDocs branch from 44778e5 to da2f45a Compare May 29, 2026 06:53
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (2)
en/includes/guides/customer-data/enable-customer-data-service.md (1)

4-4: ⚡ Quick win

Use lowercase for MkDocs admonition type.

MkDocs admonition types should be lowercase for consistency. Change !!! Note to !!! note.

📝 Suggested fix
-!!! Note
+!!! note
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@en/includes/guides/customer-data/enable-customer-data-service.md` at line 4,
The MkDocs admonition in the file uses an uppercase type token "!!! Note";
update that to use the lowercase form "!!! note" so the admonition type is
consistent with MkDocs conventions—locate the admonition marker "!!! Note" in
the document and replace it with "!!! note".
en/includes/guides/customer-data/concepts/unification-rules.md (1)

26-26: ⚡ Quick win

Split the comma splice for clarity.

The phrase "merges the two profiles and stops, only one rule fires per unification run" joins two independent clauses with a comma. Split into two sentences or use a semicolon for better readability.

📝 Suggested fix
-3. On the first match, merges the two profiles and stops, only one rule fires per unification run.
+3. On the first match, merges the two profiles and stops. Only one rule fires per unification run.

As per coding guidelines, use short sentences and clear structure.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@en/includes/guides/customer-data/concepts/unification-rules.md` at line 26,
Update the bullet text "3. On the first match, merges the two profiles and
stops, only one rule fires per unification run." by splitting the comma splice
into two sentences (or using a semicolon) for clarity; for example, change the
sentence to two short sentences such as "On the first match, merges the two
profiles and stops. Only one rule fires per unification run." to follow the
short-sentence guideline.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In `@en/includes/guides/customer-data/concepts/unification-rules.md`:
- Line 26: Update the bullet text "3. On the first match, merges the two
profiles and stops, only one rule fires per unification run." by splitting the
comma splice into two sentences (or using a semicolon) for clarity; for example,
change the sentence to two short sentences such as "On the first match, merges
the two profiles and stops. Only one rule fires per unification run." to follow
the short-sentence guideline.

In `@en/includes/guides/customer-data/enable-customer-data-service.md`:
- Line 4: The MkDocs admonition in the file uses an uppercase type token "!!!
Note"; update that to use the lowercase form "!!! note" so the admonition type
is consistent with MkDocs conventions—locate the admonition marker "!!! Note" in
the document and replace it with "!!! note".

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yml

Review profile: CHILL

Plan: Pro

Run ID: 54007dab-8fac-4f96-9c73-50d4ea77925d

📥 Commits

Reviewing files that changed from the base of the PR and between f385384 and 44778e5.

⛔ Files ignored due to path filters (7)
  • en/asgardeo/docs/assets/img/guides/customer-data/feature-preview-cds-on.png is excluded by !**/*.png
  • en/asgardeo/docs/assets/img/guides/customer-data/profile-attribute-view.png is excluded by !**/*.png
  • en/asgardeo/docs/assets/img/guides/customer-data/profile-list.png is excluded by !**/*.png
  • en/asgardeo/docs/assets/img/guides/customer-data/profile-structure.png is excluded by !**/*.png
  • en/asgardeo/docs/assets/img/guides/customer-data/scopes.gif is excluded by !**/*.gif
  • en/asgardeo/docs/assets/img/guides/customer-data/unification-rules-list.png is excluded by !**/*.png
  • en/asgardeo/docs/assets/img/guides/customer-data/unification-rules.png is excluded by !**/*.png
📒 Files selected for processing (15)
  • en/asgardeo/docs/guides/customer-data/concepts/profile-attributes.md
  • en/asgardeo/docs/guides/customer-data/concepts/profiles.md
  • en/asgardeo/docs/guides/customer-data/concepts/unification-rules.md
  • en/asgardeo/docs/guides/customer-data/enable-customer-data-service.md
  • en/asgardeo/docs/guides/customer-data/guides/manage-profile-attributes.md
  • en/asgardeo/docs/guides/customer-data/guides/manage-unification-rules.md
  • en/asgardeo/docs/guides/customer-data/index.md
  • en/asgardeo/features.json
  • en/asgardeo/mkdocs.yml
  • en/includes/guides/customer-data/concepts/profiles.md
  • en/includes/guides/customer-data/concepts/unification-rules.md
  • en/includes/guides/customer-data/enable-customer-data-service.md
  • en/includes/guides/customer-data/guides/manage-profile-attributes.md
  • en/includes/guides/customer-data/guides/manage-unification-rules.md
  • en/includes/guides/customer-data/index.md
✅ Files skipped from review due to trivial changes (9)
  • en/asgardeo/docs/guides/customer-data/guides/manage-profile-attributes.md
  • en/asgardeo/docs/guides/customer-data/concepts/profiles.md
  • en/includes/guides/customer-data/guides/manage-unification-rules.md
  • en/asgardeo/docs/guides/customer-data/enable-customer-data-service.md
  • en/asgardeo/mkdocs.yml
  • en/includes/guides/customer-data/guides/manage-profile-attributes.md
  • en/asgardeo/docs/guides/customer-data/guides/manage-unification-rules.md
  • en/asgardeo/features.json
  • en/asgardeo/docs/guides/customer-data/concepts/profile-attributes.md
🚧 Files skipped from review as they are similar to previous changes (2)
  • en/asgardeo/docs/guides/customer-data/concepts/unification-rules.md
  • en/asgardeo/docs/guides/customer-data/index.md

@github-actions
Copy link
Copy Markdown

Docs preview: https://altered-indianapolis-absence-url.trycloudflare.com

Product: asgardeo · Ref: addCustomerDataDocs · Live for 120 min.

Triggered by @KD23243 via the Preview Docs workflow.

VivekVinushanth
VivekVinushanth previously approved these changes Jun 4, 2026
@KD23243 KD23243 merged commit 83914b9 into wso2:master Jun 4, 2026
4 of 5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants